#include<iostream>
using namespace std;
class A
{
	public :
	A(int a = 0)
		: _a1(a)
	{
		cout << "A(int a)" << endl;
	}
	A(const A& aa)
		:_a1(aa._a1)
	{
		cout << "A(const A& aa)" << endl;
	}

	A& operator=(const A& aa)
	{
		cout << "A& operator=(const A& aa)" << endl;
		if (this != &aa)
		{
			_a1 = aa._a1;
		} 
		return* this;
	} 

	~A()
	{
		cout << "~A()" << endl;
	}
private:
	int _a1 = 1;
};
void f1(A aa)
{

}

A f2()
{
	A aa;
	return aa;
}
int main()
{
	A aa1;
	f1(aa1);
	cout << endl;
	return 0;
}